const express = require('express');
const router = express.Router();
const { getToken } = require('../token/token');
const executeQuery = require('../MySQL/connect');

// 新增学生的路由处理程序
router.post('/', async (req, res) => {
    const tokenResult = getToken(req.headers.authorization);
    if (!tokenResult.boolean) {
        return res.status(405).send(tokenResult.msg);
    }

    if(!tokenResult.isAdmin){
      return res.status(401).send('你不是管理员，无法添加');
    }

    const newStudent = req.body; // 获取前端发送过来的新增学生信息

    try {
        // 在这里执行向数据库插入新学生的操作
        const query = `
            INSERT INTO Students (name, sex, age, College, class, specialized, guardian, phone, address, identityCard, EnrollmenTime, remark)
            VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
        `;
        
        // 在 for...in 循环中对 'age' 和 'EnrollmenTime' 进行特殊处理
        for (const key in newStudent) {
            if (newStudent[key] === '') {
                // 对 'age' 进行特殊处理，将空字符串转换为合法的整数值
                if (key === 'age') {
                    newStudent[key] = 18; // 或者其他默认值，根据实际需求
                } else if (key === 'EnrollmenTime') {
                    // 如果 'EnrollmenTime' 为空，使用当前日期作为默认日期
                    newStudent[key] = new Date(); // 使用当前日期作为默认值，你可以根据实际需求设置其他默认日期
                } else {
                    newStudent[key] = '待添加';
                }
            }
        }

        const values = [
            newStudent.name,
            newStudent.sex,
            newStudent.age,
            newStudent.College,
            newStudent.class,
            newStudent.specialized,
            newStudent.guardian,
            newStudent.phone,
            newStudent.address,
            newStudent.identityCard,
            newStudent.EnrollmenTime,
            newStudent.remark,
        ];

        await executeQuery(query, values);

        // 返回成功的响应
        res.status(200).send({ message: '新增学生成功' });
    } catch (error) {
        // 返回错误的响应
        console.error(error);
        res.status(500).send({ error: '新增学生失败，检查提交数据' });
    }
});

module.exports = router;
